home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 47 / Amiga Format AFCD47 (Issue 131, Xmas 1999).iso / -serious- / misc / fiasco_2.22 / arexx / dummy.frx < prev    next >
Text File  |  1999-10-17  |  3KB  |  166 lines

  1. /* dummy.frx
  2.  * Skeleton script that can be used as base for ARexx scripts
  3.  * Copyright © 1997-1999 Nils Bandener
  4.  * $VER: dummy_frx 6.11 (26.6.99)
  5.  *
  6.  * Changes:
  7.  *  6.11 (26.06.99) - Error interpretation for FAILURE-errors was not correct
  8.  *  6.10 (20.10.98) - No longer tries to access FIASCO.HELP.1 or such ports
  9.  */
  10.  
  11. /* Please specify here a name for the ARexx script:
  12.  */
  13.  
  14. scriptname = "Dummy Script"
  15.  
  16. Options Results
  17.  
  18. /*
  19.  *  If not called from Fiasco, try to address the active
  20.  *  Fiasco project
  21.  */
  22.  
  23. if ~abbrev(address(), "FIASCO.") then
  24. do
  25.     /* Get list of all available ports */
  26.  
  27.     ports = show("Ports")
  28.  
  29.     /* Search for a port of Fiasco */
  30.  
  31.     do i = 1 to words(ports)
  32.  
  33.         portname = word(ports, i)
  34.  
  35.         if abbrev(portname, "FIASCO.") then
  36.         do
  37.             if datatype(substr(portname, 8), "Numeric") then
  38.             do
  39.                 /* A port of Fiasco has been found.
  40.                  * Now query Fiasco to return the port
  41.                  * name of the active database.
  42.                  */
  43.  
  44.                 Address Value portname
  45.  
  46.                 GetAttr Project Name Active ARexx Var p
  47.  
  48.                 /* Workaround for bug in Fiasco 2.21:
  49.                  * When GetAttr is called immediately after
  50.                  * Fiasco has been started, the result
  51.                  * may be incorrect:
  52.                  */
  53.  
  54.                 if rc == 0 & length(p) == 0 then
  55.                 do
  56.                     p = portname
  57.                 end
  58.  
  59.                 /* This command may fail when
  60.                  * no projects are active. This is
  61.                  * for example the case, when all
  62.                  * projects are hidden.
  63.                  */
  64.  
  65.                 if rc == 0 then
  66.                 do
  67.                     Address Value p
  68.                 end
  69.                 else
  70.                 do
  71.                     RequestChoice '"No active project" "Cancel" Title "' || scriptname || '"'
  72.  
  73.                     call bail_out
  74.                 end
  75.  
  76.                 break
  77.             end
  78.         end
  79.     end
  80. end
  81.  
  82. fiasco_port = address()
  83.  
  84. Signal on Syntax
  85. Signal on Halt
  86. Signal on Break_C
  87. Signal on Failure
  88.  
  89. /* This script runs while the user cannot do anything
  90.  * in Fiasco's GUI
  91.  */
  92.  
  93. LockGUI
  94.  
  95.  
  96. /* Code of own scripts must be inserted here.
  97.  * To exit the script, you may directly fall through to bail_out
  98.  * or call it directly.
  99.  * IMPORTANT: Be sure that bail_out is executed! Otherwise,
  100.  * the user will be locked out of Fiasco.
  101.  */
  102.  
  103.  
  104. bail_out:
  105.  
  106. Address Value fiasco_port
  107.  
  108. UnlockGUI
  109. ResetStatus
  110.  
  111. exit
  112.  
  113. syntax:
  114.  
  115. if show("Ports", fiasco_port) then
  116. do
  117.     Address Value fiasco_port
  118.  
  119.     RequestChoice '"Error ' || rc || ' in line ' || sigl || ':*n' || errortext(rc) || '" "Cancel" Title "' || scriptname || '"'
  120. end
  121. else
  122. do
  123.     say "Error" rc "in line" sigl ":" errortext(rc)
  124.     say "Enter to continue"
  125.     pull dummy
  126. end
  127.  
  128. call bail_out
  129.  
  130. failure:
  131.  
  132. if show("Ports", fiasco_port) then
  133. do
  134.     Address Value fiasco_port
  135.  
  136.     RequestChoice '"Command in line ' || sigl || '*nreturned error code ' || rc || '" "Cancel" Title "' || scriptname || '"'
  137. end
  138. else
  139. do
  140.     say "Command in line" sigl "returned error code" rc
  141.     say "Enter to continue"
  142.     pull dummy
  143. end
  144.  
  145. call bail_out
  146.  
  147. halt:
  148. break_c:
  149.  
  150. if show("Ports", fiasco_port) then
  151. do
  152.     Address Value fiasco_port
  153.  
  154.     RequestChoice '"Script Abort Requested" "Abort Script" Title "' || scriptname || '"'
  155. end
  156. else
  157. do
  158.     say "*** Break"
  159.     say "Enter to continue"
  160.     pull dummy
  161. end
  162.  
  163. call bail_out
  164.  
  165.  
  166.